<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // 数学运算符
        // + - * / % 
        let num = 10;
        console.log( num + 10 );
        console.log( num/3 ); // 结果可能带有小数
        console.log( num%3 ); 
        let num1 = 0;
        // JS 允许 0 作为 除数使用
        console.log( 3/num1 ); // Infinity 
        console.log( 3%num1 ); // NaN => not a number

        // 赋值运算符
        //  = += -+ *= /= %=
        let num2 = 999;
        num2 += 1;
        console.log(num2);

        num2 %= 3;
        console.log(num2);
        
        // 比较运算符
        // < > <= >= != !==  ==  ===
        console.log( 10>4 ); // true
        // == 只比较值
        // === 比较值的同时比较数据类型
        // ！js 的string的等值比较，也是使用 == ===
        let str1 = "999";
        let num3 = 999;
        // 自动类型转换
        console.log( str1 == num3 ); // true
        console.log( str1 === num3 ); // false
        // != 值不等于
        // !== 恒不等于，比较值的同时比较类型
        console.log( str1 != num3 ); // false
        console.log( str1 !== num3 ); // true
        
        // 逻辑运算符
        //    && 并且
        //    || 或者
        let flag1 = 10>3 && 11<4;
        console.log(flag1); // false
        let flag2 = 10>3 || 11<4;
        console.log(flag2); // true

        // 三目运算符 - 判断条件运算符
        //   条件 ? 真结果 : 假结果;
        let msg = 100>50?"是":"否";
        console.log(msg);

        // 自增 自减
        //  ++  -- 
        // 运算符放置在变量右侧，表示先取出变量值，使用完成后，再执行+1操作
        // 运算符放置在变量左侧，表示先执行+1操作，再取出变量新值
        let num4 = 100;
        console.log(num4++); // 100
        num4 = ++num4 + num4;
        console.log(num4); // 204
        
        
    </script>
</head>
<body>
    
</body>
</html>